package com.fourth.shopping.configure;

//import com.fourth.shopping.shrio.MyRealm;
import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;

//@Configuration
//public class  ShiroConfig {
//
//
//    //Filter工厂，设置对应的过滤条件和跳转条件
//    @Bean
//    public ShiroFilterFactoryBean shiroFilterFactoryBean(@Qualifier("defaultWebSecurityManager") DefaultWebSecurityManager defaultWebSecurityManager){
//        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
//        shiroFilterFactoryBean.setSecurityManager(defaultWebSecurityManager);
//
//        Map<String, String> map = new HashMap<>();
//
//        map.put("/tologin", "anon");
//        map.put("/login.html","anon");
////        map.put("/","authc");
//        map.put("/index.html", "authc");
//        map.put("/goods.html", "authc");
//        map.put("/index-2.html", "authc");
//        map.put("/categoryManagement.html","authc");
//        map.put("/logOut","logout");
//        map.put("/events.html","roles[manager]");
//
//
//        shiroFilterFactoryBean.setLoginUrl("/tologin");
//        shiroFilterFactoryBean.setUnauthorizedUrl("/tologin");
//        shiroFilterFactoryBean.setFilterChainDefinitionMap(map);
//        return shiroFilterFactoryBean;
//    }
//
//    //将自己的验证方式加入容器
//    @Bean(name = "defaultWebSecurityManager")
//    public DefaultWebSecurityManager defaultWebSecurityManager(@Qualifier("myRealm") MyRealm realm){
//        DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
//        defaultWebSecurityManager.setRealm(realm);
//        return defaultWebSecurityManager;
//    }
//
//    /**
//     *  开启shiro的注解
//     *   需要借助SpringAOP扫描Shiro注解的类，来进行安全校验
//     * @return
//     */
//    @Bean
//    public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator(){
//        DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
//        advisorAutoProxyCreator.setProxyTargetClass(true);
//        return  advisorAutoProxyCreator;
//    }
//
//    /**
//     * 开启aop的注解支持
//     * @param defaultWebSecurityManager
//     * @return
//     */
//    @Bean
//    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager defaultWebSecurityManager){
//        AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
//
//        authorizationAttributeSourceAdvisor.setSecurityManager(defaultWebSecurityManager);
//
//        return  authorizationAttributeSourceAdvisor;
//    }

//}
